<!DOCTYPE html>
<html lang="en">
<head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
</head>
<body>
      <script>
            // 数据放在实例对象之中 ;
            // 功能放在原型对象之中;
            function Parent( name , date ){
                  this.name = name;
                  this.date = date;
            }     
            Parent.prototype.showMe = function(){
                  // console.log(this,"我是showMe方法");
                  console.log("我是"+this.name+"我的出生日期是" + this.date);
            }
            // 1. showMe怎么被调用;
            // 2. showMe里面的this指向谁;

            var son = new Parent( "钢蛋","2020/06/06" );
            var son2 = new Parent( "二狗","2020/07/06" );

            // 机制 : 原型链 ;  实例对象和原型的查找机制 ;
            // 为啥 this指向了实例对象 ? 
            // 因为showMe就是一个普通函数;
            // 原型对象里面的方法可以通过 this 访问到实例对象;


            // 实例对象里面自带一根指针指向原型对象;
            // 原型对象方法里面 this 指向实例对象;
            son.showMe();
            son2.showMe();
            
            // 构造函数 = prototype > 原型对象;
            // 构造函数 < constructor = 原型对象;

            // 实例对象 = __proto__ > 原型对象 : 原型链;
            // 实例对象 < 原型对象中函数的this =原型对象
      </script>
</body>
</html>